The present invention relates to firmware for a digital set-top terminal, such as those used in cable and satellite television networks. In particular, the invention provides a method and apparatus for abstracting the operating system (OS) kernel from the firmware to provide one common archive that works with multiple operating systems.
The recent advent of digital set-top terminals has spurred the growth of subscriber television networks, such as cable/satellite television networks. Such terminals can support increased levels of programming services and a variety of software-based applications/functions, such as an electronic program guide, stock or weather banners, shop and bank at home services, games, and the like. Moreover, this trend is expected to continue with the convergence of telephone, television and computer networks, and the rise of in-home computer networks. Despite its name, the xe2x80x9cset-top terminalxe2x80x9d, also known as a decoder, can be located anywhere near a television, or may have its functions built into the television.
Each terminal includes different hardware devices and other function, for example, tuners, demodulators, MPEG-2 Decoders (e.g., audio, video, and data), video encoders, audio mixers, and so forth, which are controlled according to an operating system (OS) platform of the terminal. The OS has a hierarchical structure wherein functions are separated according to their level of abstraction. The least abstract level is the hardware device level, while the most abstract level is typically the firmware level, where client applications operate. Such applications can include on-screen program guides and a variety of other functions, e.g., as mentioned previously.
Additionally, each level manages a set of objects, which can be hardware or software objects, and defines operations that can be carried out on the objects.
However, conventionally it is necessary for different firmware to be implemented separately for each operating system platform, e.g., for different set-top manufacturers, different set-top models from the same manufacturer, or different OS platforms on a single hardware platform. Different terminals in the same network can even have different operating systems.
Generally, continual operating system changes in set-top terminals are a result of improvements, cost reductions, new components, and second source manufacturers. This is problematic since it creates confusion and requires additional record keeping to maintain a history of the status of each terminal in a network. Additionally, updated software/firmware must be developed and provided to the terminals, which leads to additional expense for the network provider.
The development cycle for firmware can be lengthy and costly for the network operator.
These problem are compounded by the continual upgrading and replacement of terminals in a network as technology advances.
Accordingly, it would be desirable to allow a television network operator to use different set-top operating systems which are compatible with a common, generic (e.g., operating-system independent) set of firmware.
The technique should allow the set-top firmware to be implemented only once while being usable under several operating systems and set-top platforms. One such suitable platform is the DCT5000 series terminals, manufactured by General Instrument Corporation, the assignee hereof.
The interface should allow the sharing of architecture and code across both OS platforms and hardware platforms.
The interface should be implementable using object-oriented programming and analysis techniques, including Java or C++ programming languages. The interface should alternatively be implementable using procedure-oriented programming languages.
The present invention provides a system having the above and other advantages.
The present invention relates to a method and apparatus for providing an abstraction layer in the hierarchical structure of a set-top terminal to enable the set-top""s firmware to be compatible with different operating systems.
A particular method is provided for allowing communication between a client and a particular operating system in a terminal. The method includes the steps of: providing a first abstraction layer for receiving an operating system-independent kernel request from the client; providing a second abstraction layer that is specific to the particular operating system for converting the operating system-independent kernel request to a request that is specific to the particular operating system; and providing the operating system-specific kernel request from the second abstraction layer to a layer in which the particular operating system is implemented for use thereat.
A corresponding apparatus is also presented.